package com.javaGather.demo1;

import java.util.HashSet;

public class Test2 {
    public static void main(String[] args) {


        HashSet<Student> students = new HashSet<>();
        Student student1 = new Student("Jack", "Smith");
        Student student2 = new Student("Jack", "Smith");
        Student student3 = new Student("Jack", "Smith");
//        Student student4 = new Student("Jack1", "Smith");
        /**
         *
         * ((k = e.key) == key || (key != null && key.equals(k))))
         * 第一次调用add  s1存入
         * 第二次调用add  存入s2    s1==s2  =false || key.equals(k) =false
         * 学生类没有重写equals方法，比较内存地址
         * s1==s2 相同内存地址，不能继续存入
         * 运行结果如下：
         * 集合存放对象个数：3
         * Student{id='Jack', name='Smith'}
         * Student{id='Jack', name='Smith'}
         * Student{id='Jack', name='Smith'}
         *
         * 如果重写学生类没有重写equals方法，则结果以下
         * 集合存放对象个数：1
         * Student{id='Jack', name='Smith'}
         */
        students.add(student1);
        students.add(student2);
        students.add(student3);
//        students.add(student4);
        System.out.println("集合存放对象个数：" + students.size());
        for (Student student : students) {
            System.out.println(student);
        }


        /**
         * HashSet集合去重，需要重写重写equals方法，比较两个对象的成员属性值是否一致
         */
    }
}
